import { Callout } from 'nextra/components'
import { Badge } from '/components/badge'

# 工具栏配置

用于配置 Umo Editor 工具栏区域的显示和行为。

## 默认配置

```js
{
  toolbar: {
    defaultMode: 'ribbon',
    // enableSourceEditor: true, v6.0.0 已移除
    menus: ['base', 'insert', 'table', 'tools', 'page', 'import', 'export'],
    disableMenuItems: [],
    importWord: {
      enabled: true,
      maxSize: 1024 * 1024 * 5, // 5MB
      options: {},
      useCustomMethod: false,
      onCustomImportMethod() {},
    },
  },
}
```

## 配置项说明

### toolbar.defaultMode

**说明**：工具栏的默认模式，配置后用户仍可自主切换模式，且会保存到本地，默认使用用户选择的工具栏模式，但您仍然可以通过[setToolbar 方法](../methods#settoolbar)来强制修改工具栏模式。

**类型**：`String`

**默认值**：`ribbon`

**可选值**：`ribbon`、`classic`

### toolbar.enableSourceEditor

**说明**：是否启用编辑器源码模式，在编辑器源码模式下，用户可编辑源码，预览效果，适合具备编程能力的开发人员使用，不建议向普通用户开放。 <Badge theme="danger">v6.0.0 已移除</Badge>

**类型**：`Boolean`

**默认值**：`false`

### toolbar.menus

**说明**：要启用的工具栏菜单列表，默认全部启用，通过配置该项，可以禁用部分菜单，但是不支持禁用所有菜单且必须包含 `base` 菜单。

**类型**：`Array`

**默认值**：`['base', 'insert', 'table', 'tools', 'page', 'export']`

**可选值**：`base`、`insert`、`table`、`tools`、`page`、`export`

### toolbar.disableMenuItems

**说明**：要禁用的菜单项，默认不禁用任何菜单项。

**类型**：`Array`

**默认值**：`[]`

**可选值**：

Umo Editor：`highlight`, `ordered-list`, `bullet-list`, `task-list`, `line-height`, `margin`, `quote`, `code`, `select-all`, `markdown`, `print`, `link`, `image`, `video`, `audio`, `file`, `code-block`, `symbol`, `chineseDate`, `emoji`, `math`, `tag`, `columns`, `callout`, `mention`, `bookmark`, `hard-break`, `hr`, `toc`, `textBox`, `template`, `webPage`, `qrcode`, `barcode`, `signature`, `seal`, `diagrams`, `echarts`, `mermaid`, `chineseCase`, `exportImage`, `exportPDF`, `exportText`, `share`, `embed`...

[Umo Editor Next](../next)：`icon`, `importWord`, `importExcel`, `importPPT`, `importWPS`, `importMarkdown`, `importText`, `exportWord`, `exportHtml`, ...

### toolbar.importWord 

<Callout type="error" emoji="❗">
**注意：** 在 Umo Editor Next 版本中，`toolbar.importWord` 配置项已被移除，请使用 `import.office` 配置项代替，见[Umo Editor Next - 文档导入](../next/import#importoffice)。

Umo Editor Next 版本采用服务器端导出的方式，支持的格式包括：doc, docx, xls, xlsx, ppt, pptx, odp, odt, ods, rtf, wps, et, dps 等，并可自行扩展。
</Callout>

**说明**：导入 Word 文档的相关配置。<Badge theme="success">v3.1.0 新增</Badge>

**类型**：`Object`

**默认值**：

```js
{
  enabled: true, 
  maxSize: 1024 * 1024 * 5, // 5MB
  options: {},
  useCustomMethod: false,
  onCustomImportMethod: undefined
}
```
**配置项**：

- `enabled`：是否启用导入 Word 文件功能，默认为 `true`。
- `maxSize`：可导入的文件大小限制，单位为字节(B)，默认为 5MB，不建议设置过大，避免导入后的性能问题。<Badge theme="success">v7.0.0 新增</Badge>
- `options`：Mammoth 的配置项 (options)，详情请见 [Mammoth](https://www.npmjs.com/package/mammoth#api)。
- `useCustomMethod`：是否使用自定义方法导入 Word 文件，可以通过配置该选项，使用自定义导入方法导入 Word 文件，默认为 `false`，如果为 `true`，则使用 `onCustomImportMethod` 方法导入 Word 文档。
- `onCustomImportMethod`：自定义导入 Word 文档的方法，如果要使用自定导入方法，需要配置 `toolbar.importWord.useCustomMethod` 选项为 `true`。

**返回值**：同 [Mammoth.convertToHtml()](https://www.npmjs.com/package/mammoth#api) 返回的数据格式，示例如下：

```js
{
  value: '<p>Hello world</p>',
  messages: [
    {
      type: 'success', 
      message: 'Converted 1 paragraph',
    },
  ],
}
```
